menu "CPU Idle"

config CPU_IDLE
	bool "CPU idle PM support"
	default y if ACPI || PPC_PSERIES
	select CPU_IDLE_GOV_LADDER if (!NO_HZ && !NO_HZ_IDLE)
	select CPU_IDLE_GOV_MENU if (NO_HZ || NO_HZ_IDLE)
	select CPU_IDLE_GOV_MTK_MENU if (NO_HZ || NO_HZ_IDLE) && !CPU_IDLE_NO_MTK
	help
	  CPU idle is a generic framework for supporting software-controlled
	  idle processor power management.  It includes modular cross-platform
	  governors that can be swapped during runtime.

	  If you're using an ACPI-enabled platform, you should say Y here.

if CPU_IDLE

config CPU_IDLE_MULTIPLE_DRIVERS
        bool

config CPU_IDLE_GOV_LADDER
	bool "Ladder governor (for periodic timer tick)"

config CPU_IDLE_GOV_MENU
	bool "Menu governor (for tickless system)"

config CPU_IDLE_GOV_MTK
	bool "MTK governor (for MediaTek SoCs)"
	help
	  MTK governor is used for MTK SoCs to select the correct idle state,
	  which applies system scenario-based policy.
	  MTK governor is specified for MTK SoCs.
	  MTK CPUidle drivers should be paired with MTK governer.

config CPU_IDLE_GOV_MTK_MENU
	bool "MTK menu governor (for MediaTek SoCs)"
	help
	  MTK menu governor is based on upstream menu governor,
	  and modify predict_us policy to fit
	  execution characteristics of MTK SoCs.
	  MTK menu can be substituted for upstream menu governor

config CPU_IDLE_NO_MTK
	bool "Disable MTK related cpuidle driver / governor"
	help
	  MTK added many proprietary cpuidle drivers and governors.
	  And some of them set to be default for all projects.
	  But not all (MTK) projects use these driver.
	  Set this option to avoid using MTK driver / gorvernor by default.

config DT_IDLE_STATES
	bool

menu "ARM CPU Idle Drivers"
depends on ARM || ARM64
source "drivers/cpuidle/Kconfig.arm"
endmenu

menu "MIPS CPU Idle Drivers"
depends on MIPS
source "drivers/cpuidle/Kconfig.mips"
endmenu

menu "POWERPC CPU Idle Drivers"
depends on PPC
source "drivers/cpuidle/Kconfig.powerpc"
endmenu

endif

config ARCH_NEEDS_CPU_IDLE_COUPLED
	def_bool n
endmenu
